﻿using System;
using System.Web.UI;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using System.Text;

public partial class CandidatoAlteracao : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["login"] == null || Session["cpf"] == null)
            Response.Redirect("mensagens.aspx?id=2");
        else
        {
            hfInscritoPor.Value = Session["login"].ToString();
            txtCPF.Text = Session["cpf"].ToString();
            txtCPF.Enabled = false;
            PreencheFormCandidato();
        }
    }

    private void PreencheFormCandidato()
    {


        if (!Page.IsPostBack)
        {
            SqlConnection conexaoIntranet = new SqlConnection(ConfigurationManager.ConnectionStrings["conexao_intranet"].ConnectionString);
            SqlCommand consultaInscrito = null;
            SqlDataReader drConsultaInscrito = null;
            try
            {
                conexaoIntranet.Open();
                string instrucao = "SELECT * FROM CamaraInscritos WHERE CPF = '"+ Session["cpf"].ToString() +"'";
                consultaInscrito = new SqlCommand(instrucao, conexaoIntranet);
                drConsultaInscrito = consultaInscrito.ExecuteReader();
                if (drConsultaInscrito.HasRows)
                {
                    drConsultaInscrito.Read();
                    ddSexo.SelectedIndex = ddSexo.Items.IndexOf(ddSexo.Items.FindByValue(drConsultaInscrito["Sexo"].ToString()));
                    txtRG.Text = drConsultaInscrito["Identidade"].ToString();
                    txtRGOrgao.Text = drConsultaInscrito["Em"].ToString();
                    txtNome.Text = drConsultaInscrito["NomeAluno"].ToString();
                    txtDataNascimento.Text = drConsultaInscrito["DataNascimento"].ToString();
                    txtNacionalidade.Text = drConsultaInscrito["Nacionalidade"].ToString();
                    txtCEP.Text = drConsultaInscrito["CEP"].ToString();
                    txtEndereco.Text = drConsultaInscrito["Endereco"].ToString();
                    txtNumero.Text = drConsultaInscrito["Numero"].ToString();
                    txtComplemento.Text = drConsultaInscrito["Complemento"].ToString();
                    txtBairro.Text = drConsultaInscrito["Bairro"].ToString();
                    txtCidade.Text = drConsultaInscrito["Cidade"].ToString();
                    ddUF.SelectedIndex = ddUF.Items.IndexOf(ddUF.Items.FindByValue(drConsultaInscrito["Estado"].ToString()));
                    ddEstadoCivil.SelectedIndex = ddEstadoCivil.Items.IndexOf(ddEstadoCivil.Items.FindByValue(drConsultaInscrito["EstadoCivil"].ToString()));
                    ddEscolaridade.SelectedIndex = ddEscolaridade.Items.IndexOf(ddEscolaridade.Items.FindByText(drConsultaInscrito["Escolaridade"].ToString()));
                    txtFone.Text = drConsultaInscrito["Telefone"].ToString();
                    txtFone2.Text = drConsultaInscrito["Telefone2"].ToString();
                    txtEmail.Text = drConsultaInscrito["Email"].ToString();
                    txtSenha.Text = drConsultaInscrito["Senha"].ToString();
                    txtSenhaConfirma.Text = drConsultaInscrito["Senha"].ToString();
                    drConsultaInscrito.Close();
                }
            }
            finally
            {
                conexaoIntranet.Close();
            }
        }



    }

    protected string FormataCampo(string valorCampo)
    {
        string strValorCampo = valorCampo.Replace("'", "");
        strValorCampo = strValorCampo.ToUpper();
        return strValorCampo;
    }

    protected void btnAlterar_Click(object sender, ImageClickEventArgs e)
    {
        SqlConnection conexaoIntranet = new SqlConnection(ConfigurationManager.ConnectionStrings["conexao_intranet"].ConnectionString);
        SqlCommand alteraInscrito = null;
        try
        {
            conexaoIntranet.Open();
            string instrucao = "UPDATE CamaraInscritos SET NomeAluno = '" + FormataCampo(txtNome.Text).ToUpper() + "', Endereco = '" + PrimeiraMaiuscula(FormataCampo(txtEndereco.Text)) + "', Numero = '" + txtNumero.Text + "', Complemento = '" + PrimeiraMaiuscula(FormataCampo(txtComplemento.Text)) + "', Cidade = '" + PrimeiraMaiuscula(FormataCampo(txtCidade.Text)) + "', Bairro = '" + PrimeiraMaiuscula(FormataCampo(txtBairro.Text)) + "', Estado = '" + ddUF.SelectedValue + "', CEP = '" + txtCEP.Text + "', Telefone = '" + txtFone.Text + "', Telefone2 = '" + txtFone2.Text + "', Identidade = '" + txtRG.Text + "', Em = '" + FormataCampo(txtRGOrgao.Text).ToUpper() + "', DataNascimento = '" + DateTime.Parse(txtDataNascimento.Text).ToString("MM-dd-yyyy") + "', Sexo = '" + ddSexo.SelectedValue + "', EstadoCivil = '" + ddEstadoCivil.SelectedValue + "', Email = '" + txtEmail.Text.ToLower() + "', Nacionalidade = '" + PrimeiraMaiuscula(FormataCampo(txtNacionalidade.Text)) + "', Escolaridade = '" + ddEscolaridade.SelectedItem.Text + "', CodEscolaridade = "+ ddEscolaridade.SelectedValue +", Senha = '" + txtSenha.Text.Replace("'", "") + "', CadastradoPor = '" + hfInscritoPor.Value + "' WHERE CPF = '"+ txtCPF.Text +"'";
            alteraInscrito = new SqlCommand(instrucao, conexaoIntranet);
            //Response.Write(instrucao);
            alteraInscrito.ExecuteNonQuery();
        }
        finally
        {
            conexaoIntranet.Close();
        }
        Session["cpf"] = txtCPF.Text;
        Session["nomeAluno"] = FormataCampo(txtNome.Text);
        Session["email"] = txtEmail.Text.ToLower();
        if (txtEmail.Text != "")
            EnviaEmailCandidato();
        Response.Redirect("CandidatoQualificacao.aspx");
    }

    private void EnviaEmailCandidato()
    {
        StringBuilder contudoMensagem = GeraMensagem();
        ClassesSiteIntranet.Mensagem api = new ClassesSiteIntranet.Mensagem();
        api.de = "camara@pe.senac.br";
        api.para = txtEmail.Text;
        api.assunto = "Camará Shopping - Cadastro no Programa de Qualificação para o Varejo";
        api.conteudomensagem = contudoMensagem.ToString();
        api.EnviarMsg();

    }

    private StringBuilder GeraMensagem()
    {
        StringBuilder mensagem = new StringBuilder();
        mensagem.Append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\">");
        mensagem.Append("<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
        mensagem.Append("<style type=\"text/css\">");
        mensagem.Append("body { font: 13px Arial, Helvetica, sans-serif; } ");
        mensagem.Append(".nome {font:bold 20px Tahoma, Arial;color:#006C91; } ");
        mensagem.Append(".dados {font-weight: bold;} ");
        mensagem.Append("</style></head>");
        mensagem.Append("<body>");
        mensagem.Append("<table style=\"width:500px;\" cellpadding=\"0\" cellspacing=\"4\" id=\"tabela\"><tr><td colspan=\"4\" class=\"nome\"><img src=\"http://www.pe.senac.br/camara/figuras/imgEmail.gif\" width=\"196\" height=\"133\" /></td></tr>");
        mensagem.Append("<tr><td colspan=\"4\" style=\"text-align:justify\">Prezado(a) candidato(a), <br /><br />");
        mensagem.Append("Seu currículo está cadastrado agora no <strong>Programa de Qualificação para o Varejo</strong>, parceria do SENAC/PE e Camará Shopping. <br />Para ver os dados do seu cadastro, acesse o endereço <a href=\"http://www.pe.senac.br/camara/candidato\">www.pe.senac.br/camara/candidato</a>, fornecendo as credenciais de acesso abaixo:</td></tr>");
        mensagem.Append("<tr><td colspan=\"4\"><hr></td></tr>");
        mensagem.Append("<tr><td style=\"width:68px;\"><strong>CPF:</strong></td><td style=\"width:432px;\">" + txtCPF.Text + "</td></tr>");
        mensagem.Append("<tr><td style=\"width:48px;\"><strong>Senha:</strong></td><td style=\"width:432px;\">" + txtSenha.Text + "</td></tr>");
        mensagem.Append("<tr><td colspan=\"4\"><hr></td></tr>");
        mensagem.Append("<tr><td colspan=\"4\">Sucesso!<br />Dúvidas, envie uma mensagem para bancodetalentos@camarashopping.com.br.</td></tr>");
        mensagem.Append("<tr><td colspan=\"4\">Recife, " + DateTime.Today.ToString("dd ' de ' MMMM ' de ' yyyy") + "</td></tr>");
        mensagem.Append("</table>");
        mensagem.Append("</body>");
        mensagem.Append("</html>");
        return mensagem;
    }

    protected void txtCEP_TextChanged(object sender, EventArgs e)
    {

        string cep = txtCEP.Text.Replace(".", "").Replace("-", "");
        if (cep.Length == 8)
        {
            SiteBLL.CEPS api = new SiteBLL.CEPS();
            DataTable tabela = api.GetLogradouroPorCEP(txtCEP.Text, "cep", "pe");
            if (tabela.Rows.Count > 0)
            {
                DataRow linha = tabela.Rows[0];
                string endereco = linha["descricaologradouro"].ToString();
                int posicao = endereco.IndexOf(" - at");
                if (posicao > 0)
                    endereco = endereco.Substring(0, posicao);
                else
                {
                    posicao = endereco.IndexOf(" - de ");
                    if (posicao > 0)
                        endereco = endereco.Substring(0, posicao);
                }
                txtEndereco.Text = endereco.ToString().ToUpper();
                txtBairro.Text = linha["descricaobairro"].ToString().ToUpper();
                txtCidade.Text = linha["descricaocidade"].ToString().ToUpper();
                ddUF.SelectedIndex = ddUF.Items.IndexOf(ddUF.Items.FindByValue(linha["ufsigla"].ToString().ToUpper()));
                txtNumero.Focus();
            }
        }

    }

    protected string PrimeiraMaiuscula(string texto)
    {
        string[] txt = texto.Split(' ');
        string primeiraLetra = "";
        string letrasRestantes = "";

        for (int i = 0; i < txt.Length; i++)
        {
            if (txt[i].Length > 2)
            {
                primeiraLetra = txt[i].Substring(0, 1).ToString().ToUpper();
                letrasRestantes = txt[i].Substring(1, txt[i].Length - 1).ToString().ToLower();
                txt[i] = primeiraLetra + letrasRestantes;
            }
        }
        return String.Join(" ", txt);
    }

}